using System;
using System.Collections.Generic;
using System.Text;

namespace EventAbstractionAPI.RuleEngine
{
    public delegate void Fire(List<ICapturedEvent> expiredEvents);

	public interface IEventAlgebra
	{
        //register new complex event
        void Register(IComplexEvent complexEvent);

        //receive new primative. event to put on the queue
        void Receive(ICapturedEvent o);

        // Define an Event based on the above Delegate
        event Fire RaiseEvent;
	}
}
